GtkTextHandle: Deal with parent_scrollable going away
authorMatthias Clasen <mclasen@redhat.com>
Tue, 18 Feb 2014 03:27:35 +0000 (22:27 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 19 Feb 2014 05:24:30 +0000 (00:24 -0500)
Use a weak reference to notice when parent_scrollable is
going away.

https://bugzilla.gnome.org/show_bug.cgi?id=724392

gtk/gtktexthandle.c

index 0f05d5aa82fa9a77654ce9c210b9828bc3ae01c9..06347499dcb6fc5c56bef16ef8f49a52c9de1a36 100644 (file)
@@ -371,12 +371,16 @@ _gtk_text_handle_set_scrollable (GtkTextHandle *handle,
           g_object_unref (priv->hadj);
           priv->hadj = NULL;
         }
+      g_object_remove_weak_pointer (G_OBJECT (priv->parent_scrollable), (gpointer *) &priv->parent_scrollable);
     }
 
   priv->parent_scrollable = scrollable;
 
   if (scrollable)
     {
+      g_object_add_weak_pointer (G_OBJECT (priv->parent_scrollable), (gpointer *) &priv->parent_scrollable);
+
       priv->vadj = gtk_scrollable_get_vadjustment (scrollable);
       priv->hadj = gtk_scrollable_get_hadjustment (scrollable);